package com.shareyi.joywindow.window;

import org.apache.commons.lang.StringUtils;

import javax.swing.filechooser.FileFilter;
import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by david on 2016/6/10.
 */
public class FileNameFilter extends FileFilter{



        String ends; // 文件后缀
        String description; // 文件描述文字
        private List<String> fileNameEnds;


        public FileNameFilter(String ends) { // 构造函数
            this.ends = ends; // 设置文件后缀
            this.description = ends; // 设置文件描述文字
            this.fileNameEnds=new ArrayList<String>();

            if(StringUtils.isNotEmpty(ends)){
                String[] endArray=ends.split(";");
                for(String end:endArray){
                    String endName=end.startsWith("*.")?end.substring(2):end;
                    fileNameEnds.add(endName.toUpperCase());
                }

            }
        }

        @Override
        // 只显示符合扩展名的文件，目录全部显示
        public boolean accept(File file) {
            if (file.isDirectory()) return true;
            String fileName = file.getName();
            String fileEnd=fileName;
            int idx=fileName.lastIndexOf(".");
            if(idx>-1){
                fileEnd=fileName.substring(idx+1);
            }
            return fileNameEnds.contains(fileEnd.toUpperCase());
        }

        @Override
        // 返回这个扩展名过滤器的描述
        public String getDescription() {
            return this.description;
        }

        // 返回这个扩展名过滤器的扩展名
        public String getEnds() {
            return this.ends;
        }

}
